package com.ktdaddy.service;

import com.ktdaddy.request.UserQueryReq;
import com.ktdaddy.utils.PageResult;
import com.ktdaddy.vo.PermissionNodeVO;
import com.ktdaddy.request.UserReq;
import com.ktdaddy.pojo.Kernel;
import com.ktdaddy.response.UserInfoResp;

import java.util.List;

/**
 * @author kdaddy@163.com
 * @date 2021/4/25 23:27
 */
public interface UserService {
    /**
     * 根据kernelName获取核心用户信息
     * @param kernelName
     * @return
     */
    Kernel getKernelByKernelName(String kernelName);

    /**
     * 注册用户信息
     */
    Integer registerUserInfo(UserReq userBO);

    /**
     * 获取用户信息
     * @return
     */
    UserInfoResp getUserInfo();

    /**
     * 获取当前用户权限列表
     * @return
     */
    List<String> getPermCode();

    /**
     * 获取权限树
     * @return
     */
    List<PermissionNodeVO> getMenuList();

    /**
     * 查询用户列表
     * @param deptQueryReq
     * @return
     */
    PageResult getUserListByPage(UserQueryReq deptQueryReq);

    /**
     * 创建用户
     */
    Integer createUser(UserReq userReq);

    /**
     * 更新用户信息，返回值为关键信息键
     * @param userReq
     * @return
     */
    Integer updateUser(UserReq userReq);

    /**
     * 获取所有的菜单信息
     * @return
     */
    List<PermissionNodeVO> getAllMenuList();
}
